home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
C64
/
T-TPUG Old Monthly Disks
/
(c)tu.d64
/
wheel fortune.c
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2007-02-04
|
9KB
|
249 lines
0 REM *********************************
1 REM * WHEEL OF FORTUNE *
2 REM * *
3 REM *BY:DEAN J. GAUDET *
4 REM *22 MAIDSTONE CRES. BRAMALEA *
5 REM *ONTARIO,CANADA *
6 REM *L6S 2Z5 : 791-8614 *
7 REM *********************************
8 REM * YY/MM/DD *
9 REM *WRITTEN:1982/12/30 *
15 REM*********************************
16 REM* VARIABLES *
17 REM* NUMERIC *
18 REM*PN(X)=NUMBER PLAYER X BETS ON *
19 REM*PB(X)=AMOUNT BET ON PN(X) ^ *
20 REM*PM(X)=PLAYER X'S MONEY *
21 REM*PI(X)=PLAYER INDICATER 1= ON *
22 REM*QX(X)=HOME X FOR PLAYER X'S BOX*
23 REM*QY(X)=HOME Y FOR PLAYER X'S BOX*
24 REM*WN=WINNING NUMBER *
25 REM*PL=NUMBER OF PLAYERS PLAYING *
26 REM*I = INDEX FOR ARRAYS *
27 REM*DL=DELAY LOOP *
28 REM*ZX,ZY= CORDS. FOR SUB AT 50200 *
29 REM*ZL=MAXIMUM LEGNTH OF STRING FOR*
30 REM* INPUT AT 60000,THEN IT BECO-*
31 REM* MES Z1. *
32 REM*ZK=ASCII CODE OF ZK$(SEE BELOW)*
33 REM*ZT=TIMER OF CUSOR IN SUB.@60000*
34 REM*ZC=WHICH CARACTER FOR CURSOR 1 *
35 REM* OR 2 FOR SUB. AT 60000 *
36 REM*D= NUMBER OF TIMES TO SPIN WHL.*
37 REM*IN=VALUE OF IN$ (SEE BELOW) *
40 REM*********************************
41 REM* STRINGS *
42 REM*PN$(X)=PLAYER X'S NAME *
43 REM*N$(X)=NUMBER X IN THE WHEEL *
44 REM*IN$=INPUT FROM SUB. AT 60000 *
45 REM*ZD$= DELETE *
46 REM*DN$=DOWN$ FOR SUB. AT 50200 *
47 REM*RT$=RIGHT$ FOR SUB. AT 50200 *
48 REM*ZK$=KEY PRESSED IN SUB. AT60000*
98 REM*********************************
99 DIMN$(10),PN$(4),PM(4),PB(4),PN(4),QX(4),QY(4),PI(4)
100 FORI=1TO10:Z=I:GOSUB41000:NEXTI
110 DN$=""
120 RT$=""
130 DATA15,1,15,20,20,1,20,20
140 FORI=1TO4:READQY(I),QX(I):NEXTI
150 FORI=1TO4:PM(I)=100:NEXTI
160 FORI=1TO4:PB(I)=0:PN(I)=0:NEXTI
997 REM********************************
998 REM*START OF MAIN PROGRAM *
999 REM********************************
1000 PRINT"[147]";:POKE53280,0:POKE53281,0
1010 PRINT" [212]HE [215]HEEL OF [198]ORTUNE [194]Y [196]EAN [202]. [199]AUDET ";
1020 PRINT" [184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184] ";
1030 PRINT"[215]OULD YOU LIKE INSTRUCTIONS? [157][157][157]";:ZL=3:GOSUB60000
1040 IN$=LEFT$(IN$,1)
1050 IFIN$="N"THEN1320
1060 IFIN$<>"Y"THEN1030
1070 PRINT"[147] [212]HE [215]HEEL OF [198]ORTUNE [194]Y [196]EAN [202]. [199]AUDET ";
1080 PRINT" [184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184] ";
1090 PRINT" [212]HE OBJECT OF THIS GAME IS TO WIN AS"
1100 PRINT"MUCH AS YOU CAN BY BETTING ON THE WHEEL"
1110 PRINT". [198]ROM 1-4 PLAYERS CAN PLAY. [197]ACH PLAYER";
1120 PRINT"STARTS OFF WITH $100 TO BET ON ON THE"
1130 PRINT"WHEEL . [217]OU WIN MONEY IF THE WHEEL"
1140 PRINT"STOPS ON THE NUMBER YOU CHOSE."
1150 PRINT" [201] WILL ASK YOU WHICH NUMBER YOU ARE"
1160 PRINT"BETTING ON, AND THEN [201] WILL ASK YOU HOW"
1170 PRINT"MUCH YOU ARE BETTING ON THAT NUMBER. [201]"
1190 PRINT"DO THIS FOR EVERY PLAYER THAT IS PLAYING";
1220 PRINT" [212]HE MONEY YOU WIN DEPENDS ON THE NUMBER";
1230 PRINT"YOU BET ON AND HOW MUCH YOU BET."
1240 ZC=0:GOSUB50000
1250 PRINT"[147] [212]HE [215]HEEL OF [198]ORTUNE [194]Y [196]EAN [202]. [199]AUDET ";
1260 PRINT" [184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184] ";
1270 PRINT" [201]F THE NUMBER YOU BET ON IS EVEN THEN"
1280 PRINT"YOU WILL WIN 1 AND 1/2 MORE THAN YOU[160]BET";
1300 PRINT" [199]OOD [204]UCK...[217]OU'LL NEED IT!!!!"
1310 ZC=1:GOSUB50000
1317 REM******************************
1318 REM*START OF GAME *
1319 REM******************************
1320 PRINT"[147] [212]HE [215]HEEL OF [198]ORTUNE [194]Y [196]EAN [202]. [199]AUDET ";
1330 PRINT" [184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184] ";
1340 PRINT"[200]OW MANY PLAYERS (1-4)? ";:ZL=1:GOSUB60000
1350 IFIN$<"1"ORIN$>"4"THEN1340
1360 PL=VAL(IN$)
1370 FORI=1TOPL:PRINTCHR$(13);
1380 PRINT"[197]NTER PLAYER";I;"[157]'S NAME: ";:ZL=9:GOSUB60000
1385 IFLEN(IN$)<>9THENIN$=IN$+" ":GOTO1385
1390 PN$(I)=IN$:PI(I)=1:NEXTI:PRINT"[147]";
1397 REM*******************************
1398 REM*INPUT #&HOW MUCH *
1399 REM*******************************
1400 GOSUB30000
1410 FORI=1TOPL:ZX=QX(I):ZY=QY(I):GOSUB50200
1415 IFPI(I)=0THEN1430
1420 PRINT"";PN$(I)
1425 GOSUB50200:PRINT"";PM(I)
1430 NEXTI
1440 FORI=1TOPL:IFPI(I)=0THEN1530
1450 ZX=10:ZY=8:GOSUB50200:PRINT"[208]LAYER";I;"[157][157][157]# : ";PN$(I)
1460 PRINTSPC(9);"[215]HICH NUMBER(1-20)? [157][157]";:ZL=2:GOSUB60000:IN=VAL(IN$)
1470 IFIN>20ORIN<1THEN1450
1480 PN(I)=IN
1490 PRINTCHR$(13);SPC(10);"AND HOW MUCH? [157][157][157][157][157]";:ZL=5:GOSUB60000
1500 IN=INT(VAL(IN$))
1510 IFIN<1ORIN>PM(I)THENPRINT"[145][145]";CHR$(13);:GOTO1490
1520 PB(I)=IN
1530 NEXTI
1537 REM*******************************
1538 REM*PRINT OUT #&AMOUNT *
1539 REM*******************************
1540 FORI=1TOPL:IFPI(I)=0THEN1580
1550 ZX=QX(I):ZY=QY(I):GOSUB50200
1560 PRINT"";PB(I)
1570 GOSUB50200:PRINT"";PN(I)
1580 NEXTI
1587 REM*******************************
1588 REM*WHEEL ROLLING *
1589 REM*******************************
1590 GOSUB40000
1597 REM*******************************
1598 REM*PAY UP *
1599 REM*******************************
1600 WN=VAL(N$(6))
1610 ZX=1:ZY=8:GOSUB50200:PRINT" "
1620 PRINT" "
1630 PRINT" "
1640 FORI=1TOPL
1650 IFPN(I)=WNTHEN1690
1660 PM(I)=PM(I)-PB(I)
1670 IFPM(I)<=0THEN20000
1680 NEXTI:GOTO1770
1687 REM*******************************
1688 REM* A WINNER *
1689 REM*******************************
1690 ZX=1:ZY=8:GOSUB50200
1700 IFINT(WN/2)=WN/2THENPB(I)=INT(PB(I)*1.5+.5)
1710 PRINT"[195]ONGRATULATIONS ";PN$(I)
1720 PRINT"[217]OU WON $";PB(I)
1730 PM(I)=PM(I)+PB(I)
1740 IFPM(I)>99999THENPM(I)=99999
1750 FORDL=1TO2000:NEXTDL
1760 GOTO1680
1770 FORI=1TOPL:PB(I)=0:PN(I)=0:NEXTI
1790 ZX=1:ZY=8:GOSUB50200:PRINT" "
1800 PRINT" "
1810 PRINT" "
1820 GOTO1400
19997 REM******************************
19998 REM* PLAYER I IS OUT *
19999 REM******************************
20000 IFPI(I)=0THEN1680
20005 PI(I)=0:PB(I)=0:PN(I)=0
20010 ZX=1:ZY=8:GOSUB50200
20020 PRINT" "
20030 PRINT" "
20050 ZX=1:ZY=8:GOSUB50200
20060 PRINT"[212]OO BAD ";PN$(I);CHR$(13);" YOU'RE OUT OF THE GAME";
20070 FORDL=1TO2000:NEXTDL
20080 IFPI(1)=0ANDPI(2)=0ANDPI(3)=0ANDPI(4)=0THEN25000
20090 GOTO1680
24997 REM******************************
24998 REM* EVERYONE IS OUT *
24999 REM******************************
25000 PRINT"[147]";
25010 PRINT" [212]HE [215]HEEL OF [198]ORTUNE [194]Y [196]EAN [202]. [199]AUDET ";
25020 PRINT" [184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184] ";
25030 PRINT" [212]OO BAD EVERYONE IS OUT."
25040 PRINT" [215]OULD YOU LIKE TO PLAY AGAIN? ";:ZL=3:GOSUB60000
25050 IN$=LEFT$(IN$,1)
25060 IFIN$="Y"THENRUN
25070 PRINTCHR$(13);
25080 PRINT" [207]KAY,BYE. [212]HANKS FOR PLAYING!";
25090 GOTO63999
29997 REM******************************
29998 REM*SUBROUTINE TO UPDATE SCREEN *
29999 REM******************************
30000 PRINT"";
30010 PRINT" [212]HE [215]HEEL OF [198]ORTUNE [194]Y [196]EAN [202]. [199]AUDET ";
30015 PRINT" [184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184] ";
30020 PRINTTAB(5);"[172][162][162][162][162][162][162][162][162][162][162][162][162][187][172][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][187]"
30030 PRINTTAB(5);"[161][161][146]"
30040 PRINTTAB(5);"[188][146][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][190][146]"
30050 PRINT"";
30060 PRINT"[172][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][187][146]";
30070 PRINT"[161][208]LAYER#1: [221][208]LAYER#2: [161][146]";
30080 PRINT"[161][205]ONEY LEFT $ [221][205]ONEY LEFT $ [161][146]";
30090 PRINT"[161][194]ETTING $ [221][194]ETTING $ [161][146]";
30100 PRINT"[161][194]ETTING ON # [221][194]ETTING ON # [161][146]";
30110 PRINT"[161][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][219][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][161][146]";
30120 PRINT"[161][208]LAYER#3: [221][208]LAYER#4: [161][146]";
30130 PRINT"[161][205]ONEY LEFT $ [221][205]ONEY LEFT $ [161][146]";
30140 PRINT"[161][194]ETTING $ [221][194]ETTING $ [161][146]";
30150 PRINT"[161][194]ETTING ON # [221][194]ETTING ON # [161][146]";
30160 PRINT"[188][146][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][190][146]";
30170 RETURN
39997 REM******************************
39998 REM*SUBROUTINE FOR ROLLING WHEEL*
39999 REM******************************
40000 FORD=0TOINT(RND(1)*10)+16
40005 FORI=1TO10
40010 ZX=3+I*3:ZY=6:GOSUB50200
40020 PRINTN$(I);
40025 IFD<15THEN40035
40030 FORI1=1TO(D-15)*5:NEXTI1
40035 NEXTI
40040 FORI=10TO2STEP-1:N$(I)=N$(I-1):NEXTI
40050 Z=1:GOSUB41000
40060 NEXTD
40070 RETURN
41000 T$=STR$(INT(RND(1)*20)+1):T$=MID$(T$,2,LEN(T$)-1)
41010 IFLEN(T$)<>2THENT$="0"+T$
41020 N$(Z)=T$:RETURN
49997 REM******************************
49998 REM*SUBROUTINE TO WAIT FOR RET. *
49999 REM******************************
50000 PRINT"[208]RESS [210][197][212][213][210][206][146] TO ";:IFZC=0THENPRINT"CONTINUE.":GOTO50020
50010 PRINT"BEGIN."
50020 GETKY$:IFKY$<>CHR$(13)THEN50020
50030 RETURN
50197 REM******************************
50198 REM*POSITION CURSOR AT ZX,ZY *
50199 REM******************************
50200 PRINTLEFT$(DN$,ZY);LEFT$(RT$,ZX);:RETURN
59997 REM******************************
59998 REM*SUBROUTINE FOR INPUT *
59999 REM******************************
60000 Z1=ZL:ZL=0:ZD$=CHR$(20):ZT=TI+35:ZC=1:IN$="":POKE198,0
60010 GETZK$:IFZK$=""ANDZT>TITHEN60010
60020 IFZK$=""THENPRINTMID$("[166] ",ZC,1);"[157]";:ZC=3-ZC:ZT=TI+30:GOTO60010
60030 ZK=ASC(ZK$)
60040 IFZK=13THENPRINT" ";:RETURN
60050 IFZK=20ANDZLTHENIN$=LEFT$(IN$,ZL-1):ZL=ZL-1:PRINTZD$;:GOTO60010
60055 IFZL=Z1THEN60010
60060 IFZK<32OR(ZK>127ANDZK<160)THEN60010
60070 ZL=ZL+1:IN$=IN$+ZK$
60080 PRINTZK$;ZD$;ZK$;
60100 GOTO60010
63995 REM******************************
63996 REM*THIS LINE IS TO END THE PROG*
63997 REM*WITHOUT ERRORS WHEN CONT. *
63998 REM******************************
63999 END